css: Implement animations for font-weight property
authorBenjamin Otte <otte@redhat.com>
Sun, 15 Feb 2015 04:37:19 +0000 (05:37 +0100)
committerBenjamin Otte <otte@redhat.com>
Mon, 16 Feb 2015 22:57:03 +0000 (23:57 +0100)
gtk/gtkcssenumvalue.c
gtk/gtkcssstylepropertyimpl.c

index 502df3e59e8a522a2cffdccbc601500f50df78d4..e9ee788bb6d491b4a8b8d99234bfe60f80797af8 100644 (file)
@@ -419,11 +419,27 @@ gtk_css_value_font_weight_compute (GtkCssValue             *value,
   return _gtk_css_font_weight_value_new (new_weight);
 }
 
+static GtkCssValue *
+gtk_css_value_font_weight_transition (GtkCssValue *start,
+                                      GtkCssValue *end,
+                                      guint        property_id,
+                                      double       progress)
+{
+  PangoWeight new_weight;
+
+  if (start->value < 0 || end->value < 0)
+    return NULL;
+
+  new_weight = (start->value + end->value + 50) / 200 * 100;
+
+  return _gtk_css_font_weight_value_new (new_weight);
+}
+
 static const GtkCssValueClass GTK_CSS_VALUE_FONT_WEIGHT = {
   gtk_css_value_enum_free,
   gtk_css_value_font_weight_compute,
   gtk_css_value_enum_equal,
-  gtk_css_value_enum_transition,
+  gtk_css_value_font_weight_transition,
   gtk_css_value_enum_print
 };
 
index 056c54ff82fd1ac0cd87d9f75c625ffcd8a0e593..45fa695e9eac88a6cc65659b02d4cec2cb36fe3b 100644 (file)
@@ -1049,7 +1049,7 @@ _gtk_css_style_property_init_properties (void)
   gtk_css_style_property_register        ("font-weight",
                                           GTK_CSS_PROPERTY_FONT_WEIGHT,
                                           PANGO_TYPE_WEIGHT,
-                                          GTK_STYLE_PROPERTY_INHERIT,
+                                          GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED,
                                           GTK_CSS_AFFECTS_FONT | GTK_CSS_AFFECTS_TEXT,
                                           parse_pango_weight,
                                           query_pango_weight,